// ************************************************************************** // // // // eses eses // // eses eses // // eses eseses esesese eses Embedded Systems Group // // ese ese ese ese ese // // ese eseseses eseseses ese Department of Computer Science // // eses eses ese eses // // eses eseses eseseses eses University of Kaiserslautern // // eses eses // // // // ************************************************************************** // // A vending machine controller that dispenses gum once. The inputs nickel and// // dime are present when a corresponding coin has been inserted. The gum is // // present for a single cycle after the machine has been given fifteen cents. // // No change is returned. // // Sources: Randy H. Katz, Contemporary Logic Design, 1994, page 389 // // ************************************************************************** // // Adapted from // // http://www.averest.org/examples/EmbeddedSystems/VendingMachine.html // // // // ************************************************************************** // module VendingMachineAdapted(event bool ?nickel,?dime,gum) { int credit; Accumulator(nickel,dime,gum,credit); || Dispatcher(credit,gum); } drivenby { emit(nickel); emit(dime); pause; pause; }